package com.hspedu.Object;
//演示Finalize用法
public class Finalize_ {
    public static void main(String[] args) {
        Car car = new Car("BMW");
        //使car指向对象内存地址变为 null，没有任何引用了，
        //这时，car对象就是一个垃圾，垃圾回收器就会回收对象，
        //在销毁对象前，会调用该对象的finalize方法
        //程序员可以在finalize方法中，写自己的业务逻辑代码（比如释放资源：数据库连接，或者打开文件流）
        //如果程序员补充些finalize，那么就会调用Object类的方法，即默认处理
        car = null;
        System.gc();//主动调用垃圾回收器，可能不会显示出来
    }
}
class Car{
    private String name;

    public Car(String name) {
        this.name = name;
    }

    @Override
    protected void finalize() throws Throwable {
        System.out.println("释放了xxx资源");
    }
}
